(() => {

	var sessionId = '';
	var sig = 0;
	var token = '';
	var yp_check = 0;

	let ele = {};
	ele.invite_code = $('#invite-code');
	ele.mobile = $('#mobile');
	ele.get_sms_code = $('#get-sms');
	ele.sms_code = $('#sms-code');
	ele.pwd = $('#password');
	ele.pwd2 = $('#repassword');
	ele.register = $('#register');
	ele.agree = $('#agree');


	var mobile = '';

	// ele.changeShow = $('#changeShow');
	// ele.changeToShow = $('#change-toShow');
	// ele.rechangeShow = $('#rechangeShow');
	// ele.rechangeToShow = $('#rechange-toShow');

	// 显示隐藏密码
	// ele.changeToShow.onclick = () => {
	// 	ele.changeShow.style.display = 'block'
	// 	ele.changeToShow.style.display = 'none'
	// 	ele.pwd.type = 'text'
	// }
	// ele.changeShow.onclick = () => {
	// 	ele.changeShow.style.display = 'none'
	// 	ele.changeToShow.style.display = 'block'
	// 	ele.pwd.type = 'password'
	// }
	// ele.rechangeToShow.onclick = () => {
	// 	ele.rechangeShow.style.display = 'block'
	// 	ele.rechangeToShow.style.display = 'none'
	// 	ele.pwd2.type = 'text'
	// }
	// ele.rechangeShow.onclick = () => {
	// 	ele.rechangeShow.style.display = 'none'
	// 	ele.rechangeToShow.style.display = 'block'
	// 	ele.pwd2.type = 'password'
	// }

	ele.pwd.onkeyup = function () {
		const rule = /[\W]/g
		ele.pwd.value = ele.pwd.value.replace(rule, '')
	}
	ele.pwd2.onkeyup = function () {
		const rule = /[\W]/g
		ele.pwd2.value = ele.pwd2.value.replace(rule, '')
	}


	let invite = getUrlParam('c') || '';
	// 链接邀请码参数
	if (!invite) openTips('邀请码丢失');
	else ele.invite_code.value = invite;




	//获取手机验证码
	ele.get_sms_code.onclick = function getSmsCode() {

		mobile = ele.mobile.value

		if (!mobile) {
			openTips('手机号不能为空');
			return false;
		}
		else if (!/^1[3-9]\d{9}$/.test(mobile)) {
			openTips('手机号有误');
			return false;
		}
		else if (!yp_check) {
			openTips('请先完成行为验证');
			return false;
		}

		ele.get_sms_code.setAttribute('disabled', true);
		var n = 60;
		var si = setInterval(function () {
			ele.get_sms_code.innerText = n + 's';
			n--;
			if (n <= 0) {
				clearInterval(si);
				ele.get_sms_code.innerText = '发送';
				ele.get_sms_code.removeAttribute('disabled');
				ypInit();
			}
		}, 1000)
		// 请求发送手机验证码接口
		ajax({
			url: API_PATH.SMS_CODE,
			method: 'POST',
			data: {
				mobile: mobile,
				sessionId: sessionId,
				sig: sig,
				token: token,
			},
			success: res => {
				if (res.code == 0) {
					openTips(res.msg);
					clearInterval(si);
					ele.get_sms_code.innerText = '发送';
					ele.get_sms_code.removeAttribute('disabled');
					ypInit();
				} else if (res.code != 0) {
					openTips(res.msg);
				}
			}
		});

	}
	let ms = 2000
	let lastClick = Date.now() - ms;
	// 提交注册申请
	ele.register.onclick = () => {
		if (Date.now() - lastClick >= ms) {
			if (!yp_check) {
				openTips('请先完成行为验证');
				return false;
			}
			var phone = ele.mobile.value;
			var smsCode = ele.sms_code.value;
			var inviteCode = ele.invite_code.value;
			var pwd = ele.pwd.value;
			var pwd2 = ele.pwd2.value;
			let agree = ele.agree.checked;
			if (!phone) {
				openTips('手机号不能为空');
				return false;
			}
			else if (!/^1[3-9]\d{9}$/.test(phone)) {
				openTips('手机号有误');
				return false;
			}
			else if (!smsCode) {
				openTips('验证码不能为空');
				return false;
			}
			else if (!/^\d{6}$/.test(smsCode)) {
				openTips('短信验证码有误');
				return false;
			}
			else if (!inviteCode) {
				openTips('请填写邀请码');
				return false;
			}
			else if (!pwd) {
				openTips('密码不能为空');
				return false;
			}
			else if (!/\w{6,12}/.test(pwd)) {
				openTips('密码为6~12位字符');
				return false;
			}
			else if (!pwd2) {
				openTips('请确认密码');
				return false;
			}
			else if (pwd !== pwd2) {
				openTips('两次输入的密码不一致');
				return false;
			}
			else if (!agree) {
				openTips('您需要同意用户协议和隐私政策');
				return false;
			}

			var data = {
				mobile: phone,
				vcode: smsCode,
				invite_code: inviteCode,
				password: pwd,
				password2: pwd2,
				sessionId,
				token,
				sig,
			};
			ajax({
				url: API_PATH.REGISTER,
				method: 'POST',
				data: data,
				success: res => {
					// console.log(res);
					if (res.code !== 1) {
						openTips(res.msg || '未知错误');
						return false;
					} else {
						openTips('注册成功，正在跳转下载页');
						setTimeout(function () {
							location.href = DOMAIN + '/appdown/';
						}, 1000);
					}
				}
			});
			lastClick = Date.now();
		}
		return

	}

	ypInit();
	// 初始化云片
	function ypInit() {
		if (window.ic && yp_check) {
			yp_check = 0;
			return ic.reset()
		}
		if (window.ic) {
			return yp_check = 0
		}
		// 实例化ic对象
		AWSC.use("ic", function (state, module) {
			// 初始化
			window.ic = module.init({
				// 应用类型标识。它和使用场景标识（scene字段）一起决定了智能验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的appkey字段值，请务必正确填写。
				appkey: "FFFF0N0000000000A00B",
				// 使用场景标识。它和应用类型标识（appkey字段）一起决定了智能验证的业务场景与后端对应使用的策略模型。您可以在阿里云验证码控制台的配置管理页签找到对应的scene值，请务必正确填写。
				scene: "ic_register_h5",
				// 声明智能验证需要渲染的目标元素ID。
				renderTo: 'human-check',
				// 验证通过时会触发该回调参数。您可以在该回调参数中将会话ID（sessionId）、签名串（sig）、请求唯一标识（token）字段记录下来，随业务请求一同发送至您的服务端调用验签。
				success: function (data) {
					sessionId = data.sessionId
					sig = data.sig
					token = data.token
					yp_check = true
				},
				// 验证失败时触发该回调参数
				fail: function (failCode) {
					// console.log(failCode)
				},
				// 验证码加载异常时触发该回调参数
				error: function (errorCode) {
					// console.log(errorCode)
				}
			});
		})
	}

})();
